package com.wxapp.common.constant.enums;

import com.wxapp.common.constant.base.IBaseEnum;

public enum RabbitExchangeTypeEnum implements IBaseEnum<String> {
    /**
     * 根据routing-key精准匹配队列(最常使用)
     */
    DIRECT("direct.%s.exchange","直连交换机"),
    /**
     * 根据routing-key模糊匹配队列，*匹配任意一个字符，#匹配0个或多个字符
     */
    TOPIC("topic.%s.exchange","主题交换机"),
    /**
     * 直接分发给所有绑定的队列，忽略routing-key,用于广播消息
     */
    FANOUT("fanout.%s.exchange","扇形交换机"),
    /**
     * 类似直连交换机，不同于直连交换机的路由规则建立在头属性上而不是routing-key(使用较少)
     */
    HEADERS("headers.%s.queue","头交换机");
    private final String value;
    private final String desc;

    RabbitExchangeTypeEnum(String value, String desc) {
        this.desc = desc;
        this.value = value;
    }
    @Override
    public String getValue() {
        return value;
    }

    @Override
    public String getDesc() {
        return desc;
    }
}
